The present invention relates generally to a bandwidth control system for networks, and more particularly to a system in which network traffic that flows through the system is prioritized and shaped to match a set of rate conditions unique to each of a hierarchy of arbitrary physical and logical aggregation points (nodes) that form a logical representation of a network and its underlying physical elements.
Quality of service (QoS) technology is critical in modern multi-service networks, both to provide needed performance to applications with particular bandwidth and latency demands, and to assist in the construction of Service Level Agreements for network cost allocation. Such technology is particularly important in networks such as TCP/IP networks that are characterized by traffic that is inherently bursty and unpredictable. Moreover, the need for QoS technology will only continue to increase as the growth of network traffic, both through the public Internet and private LANs and WANs, continues at a rapid pace.
Existing bandwidth control systems are based on various queuing algorithms such as class-based queuing (CBQ). In CBQ, traffic flows are classified with multiple attributes, each class is assigned an average data rate and bandwidth is distributed in real-time as it becomes available. Algorithms such as CBQ, however, are disadvantageous in that they are predictive in nature. Bandwidth is assigned by scheduling packets based on the system's estimate of the current load and the current rate of usage of the nodes throughout the network. Such estimates are inaccurate due to the burstiness and unpredictability of network traffic, leading to inefficient packet scheduling and the possibility of network congestion.
Algorithms such as CBQ are also disadvantageous in needing to keep fairly accurate information regarding the load and usage rates of all nodes throughout a network. This requirement makes it very difficult to scale a CBQ system as the number of network users or the complexity of the network increases. First, the computational complexity of scheduling packets increases every time users or network nodes are added. Moreover, it becomes increasingly difficult to gather load and usage information from all nodes as the number of users or network complexity increases. For example, not all nodes may respond to requests for load/rate information within a required time period. Thus, the effectiveness of CBQ systems greatly diminishes as networks scale in size and complexity.
There is a need in the art for a bandwidth control system that can dynamically manage bandwidth consumption without the need of predictive packet scheduling. There is also a need for a bandwidth control system that scale with increases in network users or network complexity without increased computational complexity or loss of performance.